package fr.bugtracker.commun.converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

import fr.bugtracker.commun.outils.UtilsJsf;

/**
 * Converter pour les date/heure
 * @author l.parrot1
 */
@FacesConverter(value = "dateTimeConverter")
public class DateTimeConverter implements Converter {

	/**
	 * formattage pour la date/heure
	 */
	private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");

	/**
	 * Constructeur de la classe <code>DateTimeConverter</code>.
	 */
	public DateTimeConverter() {
	}

	/**
	 * @see javax.faces.convert.Converter#getAsObject(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String)
	 */
	@Override
	public Object getAsObject(FacesContext pContext, UIComponent pComponent, String pValue) {
		try {
			return sdf.parse(pValue);
		} catch (ParseException e) {
			UtilsJsf.addMessage(FacesMessage.SEVERITY_ERROR, "Erreur lors de la transformation de la date");
		}
		return null;
	}

	/**
	 * @see javax.faces.convert.Converter#getAsString(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
	 */
	@Override
	public String getAsString(FacesContext pContext, UIComponent pComponent, Object pValue) {
		if (pValue != null) {
			return sdf.format((Date) pValue);
		}
		return "-";
	}
}
